#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <omp.h>

#define VERBOSE 0

int Vcycle_1d
(
 const double *v_in, 
 const double *f_in, 
 int size_in,
 int nu_down, 
 int nu_up,
 double *v_out
);


int interpolate
(
 double *v_in,
 int size_in,
 double *v_out
);

int restrict
(
 const double *v_in,
 const double *f_in,
 int size_in,
 double *f_out
 );


int apply
(
 const double *v_in,
 int size,
 double *v_out
 );

int relax
(
 const double *f_in,
 int size_in,
 int nu,
 double *v_in_out
 );

int serial_jacobi
(
 const double *f_in,
 int size,
 double *v_in_out
 );

double get_2norm_error
(
 double* v, 
 int size
 );
